Traditionally, an incremental or differential backup by an object (e.g., file) based backup system and/or application has involved storing to backup media (e.g., a secondary disk) a backup copy of any object that has been newly created or modified since a last backup. Typically, every time an object is modified, the entire object is stored to backup media again. This leads to two copies of the same object on the backup media (e.g., tape or secondary disk), resulting in data redundancy. In addition, under the traditional approach, the backup software creates and maintains for every new version of an object that gets backed up an index entry and/or other metadata corresponding to the version. The presence on backup media of many version of the same object, each potentially stored in a different location, may also result in a long “recovery window”, i.e., the time it takes to locate, retrieve, and restore a desired version, due to the fact that the appropriate tape/disk must be searched to retrieve the desired version.
Therefore, a solution is needed that provides faster and more reliable backup and restore while saving costly storage space by avoiding data redundancy.